﻿using System;
using System.Configuration;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.IO;
using System.Data;
using System.Collections.Generic;

namespace KasaTakip
{
    public partial class frmTransfer : XtraForm
    {
        private int MagazaNo = Program.AktifDepoNo;
        public DateTime IslemTarihi { get; set; }

        public frmTransfer()
        {
            InitializeComponent();
        }

        private void frmTransfer_Load(object sender, EventArgs e)
        {
            this.Icon = Properties.Resources.ikon;
            DateTime bugun = IslemTarihi.ToSmallDate();
            DateTime dun = bugun.AddDays(-1);
            txtBankayaYatan.Text = "0";
            DataTable dt1 = new DataTable();
            DataTable dt2 = new DataTable();
            dt1.Columns.Add("Açıklama", typeof(string));
            dt1.Columns.Add("Tutar", typeof(double));
            dt2.Columns.Add("Açıklama", typeof(string));
            dt2.Columns.Add("Tutar", typeof(double));
            for (int i = 0; i < 10; i++)
            {
                dt1.Rows.Add("", 0);
                dt2.Rows.Add("", 0);
            }


            grdMagazaCikislar.DataSource = dt1;
            grdMagazaCikislar.Columns[0].Width = 300;
            grdMagazaGirisler.DataSource = dt2;
            grdMagazaGirisler.Columns[0].Width = 300;

            using (KasaEntity ent = new KasaEntity())
            {
                var closures = ent.KasaKapanislari.Where(x => x.MagazaID == MagazaNo && x.Tarih == bugun).ToList();

                txtNakitToplam.Text = closures.Select(x => x.NakitToplam).Sum().ToString("n2");
                txtTahsilatToplam.Text = closures.Select(x => x.TahsilatlarToplam).Sum().ToString("n2");
                txtCariHesapToplam.Text = closures.Select(x => x.AcikHesapToplam).Sum().ToString("n2");
                txtDigerOdemeler.Text = closures.Select(x => x.MasrafFaturalarToplam).Sum().ToString("n2");
                txtDahiliHarcamalar.Text = closures.Select(x => x.HarcamalarToplam).Sum().ToString("n2");
                txtIade.Text = closures.Select(x => x.IadeToplam).Sum().ToString("n2");


                double? gelen = (from m in ent.MagazaHareketleri
                                 where m.Tarih == bugun && m.MagazaNo == MagazaNo && m.Tip == 0
                                 select (double?)m.Tutar).Sum();

                var giden = (from m in ent.MagazaHareketleri
                             where m.Tarih == bugun && m.MagazaNo == MagazaNo && m.Tip == 1
                             group m by m.DovizCinsi into g
                             select new { DovizCinsi = g.Key, Tutar = g.Sum(x => x.Tutar) }).ToList();

                if (gelen.HasValue)
                    txtGelen.Text = gelen.Value.ToString("n2");
                else
                    txtGelen.Text = (0d).ToString("n2");

                txtGonderilen.Text = giden.Where(x => x.DovizCinsi == 0).Select(x => x.Tutar).Sum().ToString("n2");

                var devir = ent.Kapanislar.Where(x => x.Tarih == dun && x.MagazaNo == MagazaNo).Select(x => new { x.KalanTutar, x.KalanDolar, x.KalanEuro }).FirstOrDefault();
                if (devir != null)
                {
                    txtDevir.Text = devir.KalanTutar.ToString("n2");

                    double? dolar = giden.Where(x => x.DovizCinsi == 1).Select(x => (double?)x.Tutar).Sum();
                    double? euro = giden.Where(x => x.DovizCinsi == 2).Select(x => (double?)x.Tutar).Sum();

                    if (dolar.HasValue)
                        txtUsdDevir.Text = (devir.KalanDolar - dolar.Value).ToString("n2");
                    else
                        txtUsdDevir.Text = devir.KalanDolar.ToString("n2");

                    if (euro.HasValue)
                        txtEuroDevir.Text = (devir.KalanEuro - euro.Value).ToString("n2");
                    else
                        txtEuroDevir.Text = devir.KalanEuro.ToString("n2");

                }
                else
                {
                    txtDevir.Text = "0";
                    txtUsdDevir.Text = "0";
                    txtEuroDevir.Text = "0";
                }

                var krd = (from h in ent.BankaHareketleri
                           join b in ent.Bankalar on h.BankaID equals b.ID
                           join c in ent.KasaKapanislari on h.ClosureID equals c.ID
                           where c.Tarih == bugun && c.MagazaID == MagazaNo
                           group h by b.Aciklama into g
                           select new { Banka = g.Key, Tutar = g.Sum(x => x.Tutar) }).ToList();
                gridKrediDetay.DataSource = krd;

                var magazadurum = ent.Kapanislar.Where(x => x.Tarih == bugun && x.MagazaNo == MagazaNo).Select(x => new { x.BankayaYatan, x.ID, x.AktifDeger, x.KapasitifDeger, x.ReaktifDeger, x.Kapandi, x.EuroKur, x.DolarKur, x.KalanDolar, x.KalanEuro, x.DolarTutari, x.EuroTutari }).FirstOrDefault();
                if (magazadurum != null)
                {
                    txtBankayaYatan.Text = magazadurum.BankayaYatan.ToString("n2");
                    txtAktif.Text = magazadurum.AktifDeger;
                    txtKapasitif.Text = magazadurum.KapasitifDeger;
                    txtReaktif.Text = magazadurum.ReaktifDeger;
                    txtEuroKur.Text = magazadurum.EuroKur.ToString("n2");
                    txtUsdKur.Text = magazadurum.DolarKur.ToString("n2");

                    txtUsdTutar.Text = magazadurum.DolarTutari.ToString("n2");
                    txtEuroTutar.Text = magazadurum.EuroTutari.ToString("n2");

                    var magazaCikis = ent.MagazaCikislari.Where(x => x.ClosureID == magazadurum.ID).ToList();
                    int row = 0;
                    foreach (var item in magazaCikis)
                    {
                        grdMagazaCikislar[0, row].Value = item.Aciklama;
                        grdMagazaCikislar[1, row].Value = item.Tutar;
                        row++;
                    }

                    var magazaGiris = ent.MagazaGirisleri.Where(x => x.ClosureID == magazadurum.ID).ToList();
                    row = 0;
                    foreach (var item in magazaGiris)
                    {
                        grdMagazaGirisler[0, row].Value = item.Aciklama;
                        grdMagazaGirisler[1, row].Value = item.Tutar;
                        row++;
                    }

                }

                if (!Program.AdminMode)
                {
                    if (magazadurum != null && magazadurum.Kapandi == true)
                    {
                        btnBanka.Enabled = false;
                        button1.Enabled = false;
                        txtBankayaYatan.Enabled = false;
                        this.Text = "Günün kapanışı yapılmış !";
                    }
                }
            }
            Hesapla();
        }

        private void txtBankayaYatan_TextChanged(object sender, EventArgs e)
        {
            Hesapla();
        }

        private void Hesapla()
        {
            decimal cikislar = 0;
            decimal girisler = 0;
            for (int i = 0; i < grdMagazaCikislar.RowCount; i++)
            {
                cikislar += Cevir.Parse<decimal>(grdMagazaCikislar[1, i].Value);
            }

            for (int i = 0; i < grdMagazaGirisler.RowCount; i++)
            {
                girisler += Cevir.Parse<decimal>(grdMagazaGirisler[1, i].Value);
            }

            decimal dolar = Cevir.Parse<decimal>(txtUsdTutar.Text) * Cevir.Parse<decimal>(txtUsdKur.Text);
            decimal euro = Cevir.Parse<decimal>(txtEuroTutar.Text) * Cevir.Parse<decimal>(txtEuroKur.Text);

            decimal giris = Cevir.Parse<decimal>(txtDevir.Text) + Cevir.Parse<decimal>(txtGelen.Text) + (Cevir.Parse<decimal>(txtNakitToplam.Text) - dolar - euro) + girisler;
            decimal cikis = Cevir.Parse<decimal>(txtBankayaYatan.Text) + Cevir.Parse<decimal>(txtGonderilen.Text) + cikislar;
            txtKalan.Text = (giris - cikis).ToString("n2");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtKalan.Text))
                txtBankayaYatan.Text = "0";

            if (!string.IsNullOrEmpty(txtAktif.Text) && !string.IsNullOrEmpty(txtReaktif.Text) && !string.IsNullOrEmpty(txtKapasitif.Text))
            {
                DialogResult rs = MessageBox.Show("Kaydetmek istermisiniz ?\r\nBu işlem geri alınamaz !", "Uyarı", MessageBoxButtons.YesNo);
                if (rs == System.Windows.Forms.DialogResult.Yes)
                {
                    Kaydet(true);
                    DialogResult prn = MessageBox.Show("Yazdırmak istermisiniz ?", "Uyarı", MessageBoxButtons.YesNo);
                    if (prn == System.Windows.Forms.DialogResult.Yes)
                        Yazdir();
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Aktif,Reaktif,Kapasitif bilgilerinin girilmesi zorunludur !");
            }
        }

        private void Kaydet(bool kapat)
        {
            using (KasaEntity ent = new KasaEntity())
            {
                DateTime bugun = IslemTarihi.ToSmallDate();
                Kapanis kpn = null;
                bool guncelleme = true;
                kpn = ent.Kapanislar.Where(x => x.Tarih == bugun && x.MagazaNo == MagazaNo).FirstOrDefault();
                if (kpn == null)
                {
                    kpn = new Kapanis();
                    guncelleme = false;
                }
                kpn.AktifDeger = txtAktif.Text;
                kpn.BankayaYatan = Cevir.Parse<double>(txtBankayaYatan.Text);
                kpn.DevirToplam = Cevir.Parse<double>(txtDevir.Text);
                kpn.KalanTutar = Cevir.Parse<double>(txtKalan.Text);
                kpn.KapasitifDeger = txtKapasitif.Text;
                kpn.MagazaNo = MagazaNo;
                kpn.ReaktifDeger = txtReaktif.Text;
                kpn.SubedenGelen = Cevir.Parse<double>(txtGelen.Text);
                kpn.Tarih = bugun;
                kpn.KalanDolar = Cevir.Parse<double>(txtUsdDevir.Text) + Cevir.Parse<double>(txtUsdTutar.Text);
                kpn.KalanEuro = Cevir.Parse<double>(txtEuroDevir.Text) + Cevir.Parse<double>(txtEuroTutar.Text);
                kpn.DolarKur = Cevir.Parse<double>(txtUsdKur.Text);
                kpn.EuroKur = Cevir.Parse<double>(txtEuroKur.Text);
                kpn.Kapandi = kapat;
                kpn.EuroTutari = Cevir.Parse<double>(txtEuroTutar.Text);
                kpn.DolarTutari = Cevir.Parse<double>(txtUsdTutar.Text);

                if (!guncelleme)
                    ent.AddToKapanislar(kpn);
                ent.SaveChanges();

                int? id = ent.Kapanislar.Where(x => x.Tarih == bugun && x.MagazaNo == MagazaNo).Select(x => x.ID).FirstOrDefault();
                if (id.HasValue)
                {
                    if (guncelleme)
                    {
                        var cki = ent.MagazaCikislari.Where(x => x.ClosureID == kpn.ID).ToList();
                        foreach (var item in cki)
                        {
                            ent.DeleteObject(item);
                            ent.SaveChanges();
                        }

                        var gri = ent.MagazaGirisleri.Where(x => x.ClosureID == kpn.ID).ToList();
                        foreach (var item in gri)
                        {
                            ent.DeleteObject(item);
                            ent.SaveChanges();
                        }
                    }

                    for (int i = 0; i < grdMagazaCikislar.RowCount; i++)
                    {
                        if (!string.IsNullOrEmpty(Cevir.Parse<string>(grdMagazaCikislar[0, i].Value)) && Cevir.Parse<double>(grdMagazaCikislar[1, i].Value) > 0)
                        {
                            MagazaCikis ck = new MagazaCikis();
                            ck.Aciklama = grdMagazaCikislar[0, i].Value.ToString();
                            ck.Tutar = Cevir.Parse<double>(grdMagazaCikislar[1, i].Value);
                            ck.ClosureID = id.Value;
                            ent.AddToMagazaCikislari(ck);
                        }
                    }

                    for (int i = 0; i < grdMagazaGirisler.RowCount; i++)
                    {
                        if (!string.IsNullOrEmpty(Cevir.Parse<string>(grdMagazaGirisler[0, i].Value)) && Cevir.Parse<double>(grdMagazaGirisler[1, i].Value) > 0)
                        {
                            MagazaGiris gr = new MagazaGiris();
                            gr.Aciklama = grdMagazaGirisler[0, i].Value.ToString();
                            gr.Tutar = Cevir.Parse<double>(grdMagazaGirisler[1, i].Value);
                            gr.ClosureID = id.Value;
                            ent.AddToMagazaGirisleri(gr);
                        }
                    }

                    ent.SaveChanges();
                }
            }
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            if (new frmSifre().ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                StoreReport rp = new StoreReport();
                using (FastReport.Report report = Printing.GetReport(ReportTypeOption.AnaKasaRaporu))
                {
                    System.Windows.Forms.BindingSource binding = new System.Windows.Forms.BindingSource { DataSource = rp };
                    report.RegisterData(binding, "Report", 10);
                    report.GetDataSource("Report").Enabled = true;
                    report.Prepare();
                    report.Design();

                    using (KasaEntity ent = new KasaEntity())
                    {
                        BelgeSablonu belge = (from b in ent.BelgeSablonlari where b.ReportType == (byte)ReportTypeOption.AnaKasaRaporu select b).FirstOrDefault();
                        if (belge == null)
                        {
                            ent.AddToBelgeSablonlari(new BelgeSablonu()
                            {
                                ReportType = (byte)ReportTypeOption.AnaKasaRaporu,
                                TemplateContent = File.ReadAllBytes(Printing.GetPath(ReportTypeOption.AnaKasaRaporu))
                            });
                        }
                        else
                        {
                            belge.ReportType = (byte)ReportTypeOption.AnaKasaRaporu;
                            belge.TemplateContent = File.ReadAllBytes(Printing.GetPath(ReportTypeOption.AnaKasaRaporu));
                        }
                        ent.SaveChanges();
                    }
                }
            }
        }


        private void Yazdir()
        {
            using (KasaEntity ent = new KasaEntity())
            {
                DateTime bugun = IslemTarihi.ToSmallDate();

                var kapanis = ent.Kapanislar.Where(x => x.Tarih == bugun && x.MagazaNo == MagazaNo).FirstOrDefault();
                if (kapanis != null)
                {
                    StoreReport rp = new StoreReport();
                    rp.Tarih = bugun;
                    rp.MagazaAdi = ent.Magazalar.Where(x => x.MagazaNo == MagazaNo).Select(x => x.MagazaAdi).FirstOrDefault();

                    var kasaKapanis = from kp in ent.KasaKapanislari
                                      join k in ent.Kasalar on kp.KasaID equals k.ID
                                      join ks in ent.Kasiyerler on kp.KasiyerID equals ks.ID
                                      where kp.MagazaID == MagazaNo && kp.Tarih == bugun
                                      select new { kp.ID, k.No, ks.KasiyerAdi, Tutar = kp.ZRaporToplam + kp.FaturaToplam, kp.KasaFarki, kp.NakitToplam };

                    List<NakitHareketi> nakitler = new List<NakitHareketi>();

                    foreach (var item in kasaKapanis)
                    {
                        var zrapor = ent.ZRaporlari.Where(x => x.ClosureID == item.ID).ToList();
                        KasaCiroBilgileri ciro = new KasaCiroBilgileri();
                        ciro.KasaNo = item.No;
                        ciro.Kasiyer = item.KasiyerAdi;
                        ciro.Tutar = item.Tutar;
                        ciro.FaturaAdedi = zrapor.Select(x => x.FaturaAdedi).Sum();
                        ciro.FaturaTutari = zrapor.Select(x => x.FaturaTutari).Sum();
                        ciro.FisAdedi = zrapor.Select(x => x.FisAdedi).Sum();
                        ciro.FisTutari = zrapor.Select(x => x.ZTutari).Sum();
                        ciro.IadeAdedi = zrapor.Select(x => x.IadeAdedi).Sum();
                        ciro.IadeTutari = zrapor.Select(x => x.IadeTutari).Sum();
                        ciro.Fark = item.KasaFarki;
                        rp.KasaCirolari.Add(ciro);

                        foreach (var nk in ent.NakitHareketleri.Where(x => x.ClosureID == item.ID).ToList())
                        {
                            var n = nakitler.Where(x => x.ParaCinsi == nk.ParaCinsi).FirstOrDefault();
                            if (n != null)
                            {
                                n.Miktar += nk.Miktar;
                                n.Tutar += nk.Tutar;
                            }
                            else
                                nakitler.Add(nk);
                        }
                    }

                    Array.ForEach(nakitler.ToArray(), rp.NakitBilgileri.Add);

                    rp.Hasilat = rp.KasaCirolari.Select(x => x.Tutar).Sum();

                    var magazaHareketleri = (from m in ent.Magazalar
                                             join h in ent.MagazaHareketleri on m.ID equals h.MagazaNo
                                             where h.MagazaNo == MagazaNo && h.Tarih == bugun
                                             group h by new { m.MagazaAdi, h.DovizCinsi, h.Tip } into g
                                             select new SubeTransgerBilgileri
                                             {
                                                 SubeAdi = g.Key.MagazaAdi,
                                                 DovizTip = (g.Key.DovizCinsi == 0 ? "Tl" : g.Key.DovizCinsi == 1 ? "Usd" : "Euro"),
                                                 Tip = g.Key.Tip == 0 ? "Giriş" : "Çıkış",
                                                 Tutar = g.Sum(x => x.Tutar)
                                             }).ToArray();

                    Array.ForEach(magazaHareketleri, rp.SubeTransferleri.Add);
                    rp.SubeCikisToplami = magazaHareketleri.Where(x => x.Tip == "Çıkış").Select(x => x.Tutar).Sum();
                    rp.SubeGirisToplami = magazaHareketleri.Where(x => x.Tip == "Giriş").Select(x => x.Tutar).Sum();

                    var masraflar = (from m in ent.MasrafHareketleri
                                     join c in ent.KasaKapanislari on m.ClosureID equals c.ID
                                     where c.MagazaID == MagazaNo && c.Tarih == bugun
                                     group m by m.Aciklama into g
                                     select new HarcamaBilgileri { Adi = g.Key, Tutar = g.Sum(x => x.Tutar) }).ToArray();

                    var masrafFatura = (from m in ent.MasrafFaturalari
                                        join k in ent.MasrafTanimlari on m.MasrafID equals k.ID
                                        where m.Tarih == bugun && m.MagazaNo == MagazaNo
                                        group m by k.Adi into g
                                        select new HarcamaBilgileri { Adi = g.Key, Tutar = g.Sum(x => x.Tutar) }).ToArray();

                    Array.ForEach(masraflar, rp.HarcamaBilgileri.Add);
                    Array.ForEach(masrafFatura, rp.MasrafFaturalari.Add);

                    var cikislar = (from k in ent.Kapanislar
                                    join c in ent.MagazaCikislari on k.ID equals c.ClosureID
                                    where k.MagazaNo == MagazaNo && k.Tarih == bugun
                                    select new GirisCikisBilgileri { Adi = c.Aciklama, Tutar = c.Tutar }).ToArray();

                    Array.ForEach(cikislar, rp.CikisBilgileri.Add);

                    var girisler = (from k in ent.Kapanislar
                                    join c in ent.MagazaGirisleri on k.ID equals c.ClosureID
                                    where k.MagazaNo == MagazaNo && k.Tarih == bugun
                                    select new GirisCikisBilgileri { Adi = c.Aciklama, Tutar = c.Tutar }).ToArray();

                    Array.ForEach(girisler, rp.GirisBilgileri.Add);

                    var tahsilatlar = (from t in ent.CariTahsilatHareketleri
                                       join c in ent.Cariler on t.CariID equals c.ID
                                       join cl in ent.KasaKapanislari on t.ClosureID equals cl.ID
                                       where cl.MagazaID == MagazaNo && cl.Tarih == bugun
                                       group t by new { c.Unvani, t.CekNo } into g
                                       select new TahsilatBilgileri { FirmaAdi = g.Key.Unvani, Tutar = g.Sum(x => x.Tutar), BelgeNo = g.Key.CekNo }).ToArray();

                    Array.ForEach(tahsilatlar, rp.TahsilatBilgileri.Add);

                    var acikHesap = (from a in ent.AcikHesapHareketleri
                                     join k in ent.KasaKapanislari on a.ClosureID equals k.ID
                                     join c in ent.Cariler on a.CariID equals c.ID
                                     where k.MagazaID == MagazaNo && k.Tarih == bugun
                                     select new AcikHesapBilgileri { FirmaAdi = c.Unvani, Tutar = a.KdvDahilTutar, BelgeNo = a.BelgeNo, Kdv = a.KdvHaricTutar }).ToArray();

                    Array.ForEach(acikHesap, rp.AcikHesapBilgileri.Add);

                    var bankalar = (from h in ent.BankaHareketleri
                                    join b in ent.Bankalar on h.BankaID equals b.ID
                                    join cl in ent.KasaKapanislari on h.ClosureID equals cl.ID
                                    where cl.MagazaID == MagazaNo && cl.Tarih == bugun && b.BankaTipi == 0
                                    group h by b.Aciklama into g
                                    select new BankaBilgileri { Adi = g.Key, Miktar = g.Sum(x => x.Slip), Tutar = g.Sum(x => x.Tutar) }).ToArray();

                    Array.ForEach(bankalar, rp.BankaBilgileri.Add);

                    var cekler = (from h in ent.BankaHareketleri
                                  join b in ent.Bankalar on h.BankaID equals b.ID
                                  join cl in ent.KasaKapanislari on h.ClosureID equals cl.ID
                                  where cl.MagazaID == MagazaNo && cl.Tarih == bugun && b.BankaTipi == 2
                                  group h by b.Aciklama into g
                                  select new BankaBilgileri { Adi = g.Key, Miktar = g.Sum(x => x.Slip), Tutar = g.Sum(x => x.Tutar) }).ToArray();


                    Array.ForEach(cekler, rp.CekBilgileri.Add);


                    var yemekfisleri = (from h in ent.BankaHareketleri
                                        join b in ent.Bankalar on h.BankaID equals b.ID
                                        join cl in ent.KasaKapanislari on h.ClosureID equals cl.ID
                                        where cl.MagazaID == MagazaNo && cl.Tarih == bugun && b.BankaTipi == 1
                                        group h by b.Aciklama into g
                                        select new BankaBilgileri { Adi = g.Key, Miktar = g.Sum(x => x.Slip), Tutar = g.Sum(x => x.Tutar) }).ToArray();


                    Array.ForEach(yemekfisleri, rp.YemekFisiBilgileri.Add);

                    rp.Devir = kapanis.DevirToplam;
                    rp.BankayaYatan = kapanis.BankayaYatan;
                    rp.KalanPara = kapanis.KalanTutar;
                    rp.HarcamalarToplami = rp.HarcamaBilgileri.Select(x => x.Tutar).Sum();
                    rp.NakitToplam = kasaKapanis.Select(x => x.NakitToplam).Sum();
                    rp.EuroTutari = kapanis.EuroTutari;
                    rp.DolarTutari = kapanis.DolarTutari;
                    rp.DolarDevir = kapanis.KalanDolar - kapanis.DolarTutari;
                    rp.EuroDevir = kapanis.KalanEuro - kapanis.EuroTutari;

                    using (FastReport.Report report = Printing.GetReport(ReportTypeOption.AnaKasaRaporu))
                    {
                        System.Windows.Forms.BindingSource binding = new System.Windows.Forms.BindingSource { DataSource = rp };
                        report.RegisterData(binding, "Report", 20);
                        report.GetDataSource("Report").Enabled = true;
                        report.Prepare();
                        report.Print();
                    }

                }
                else
                {
                    MessageBox.Show("yazdırmak için mağaza kapanışı yapmalısınız !");
                }
            }
        }

        private void printToolStripButton_Click(object sender, EventArgs e)
        {
            Yazdir();
        }

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 1)
            {
                txtBankayaYatan_TextChanged(txtBankayaYatan, null);
            }
        }

        private void grdMagazaCikislar_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            Hesapla();
        }

        private void grdMagazaGirisler_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            Hesapla();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Kaydet(false);
            MessageBox.Show("Kaydedildi !");
        }

    }
}
